package org.sean.framework.exception;

import org.sean.framework.code.StatusInfo;

/**
 * Created by Sean.xie on 2019/1/2.
 */
public class StatusExceptionUtil {

    private StatusExceptionUtil() {
    }

    /**
     * 抛异常
     *
     * @param code 状态
     * @param msg  消息
     */
    public static void throwException(int code, String msg) {
        throw new StatusException(new StatusInfo(code).setAnyMessage(msg));
    }

    /**
     * 抛异常
     *
     * @param code   状态
     * @param msgKey key
     * @param args   参数
     */
    public static void throwI18NException(int code, String msgKey, Object... args) {
        throw new StatusException(new StatusInfo(code).setMessage(msgKey, args));
    }

    /**
     * 抛异常
     *
     * @param info 消息内容
     */
    public static void throwException(StatusInfo info) {
        throw new StatusException(info);
    }

    /**
     * 抛异常
     *
     * @param info StatusInfo
     * @param msg  消息内容
     */
    public static void throwException(StatusInfo info, String msg) {
        throw new StatusException(info.setAnyMessage(msg));
    }

    /**
     * 参数错误
     *
     * @param msg 消息内容
     */
    public static void throwParamException(String msg) {
        throw new StatusException(StatusInfo.paramsInvalidError().setAnyMessage(msg));
    }


    /**
     * 数据不存在
     *
     * @param msg 消息内容
     */
    public static void throwNotExistException(String msg) {
        throw new StatusException(StatusInfo.dataNotExistError().setAnyMessage(msg));
    }


    /**
     * Kafka异常
     *
     * @param msg 消息内容
     */
    public static void throwKafkaException(String msg) {
        throw new StatusException(StatusInfo.kafkaAccessFailed().setAnyMessage(msg));
    }


    /**
     * 操作不支持
     *
     * @param msg 消息内容
     */
    public static void throwNotSupportException(String msg) {
        throw new StatusException(StatusInfo.notSupported().setAnyMessage(msg));
    }


}
